package controlador;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import datos.AccionesCliente;
import datos.AccionesCuentaBancaria;
import datos.AccionesMarca;
import datos.AccionesProducto;
import datos.AccionesProveedor;
import datos.AccionesUsuario;
import datos.CuentaBancaria;
import datos.Proveedor;
import datos.Usuario;

/**
 * Servlet implementation class EditarProveedor
 */
public class EditarProveedor extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public EditarProveedor() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession sesion=request.getSession();
		String user=(String)sesion.getAttribute("user");
		String pass=(String)sesion.getAttribute("pass");
		Usuario u=new Usuario(user, pass);
		String r=AccionesUsuario.reemplazar(this.getClass().getSimpleName());
		if(AccionesUsuario.validarUsuario(u)){
			if(AccionesUsuario.validarPermiso(u, r)){
			
			int idProveedor=Integer.parseInt(request.getParameter("idProveedor"));
			if(AccionesProducto.existsProveedorProducto(idProveedor)){
				sesion.setAttribute("errorProveedorProducto", true);
				response.sendRedirect("proveedores.jsp");
			}else{
				sesion.setAttribute("errorProveedorProducto", false);
			AccionesMarca.deleteMarcaByProveedor(idProveedor);	
			AccionesProveedor.BajaProveedor(idProveedor);
			response.sendRedirect("proveedores.jsp");
			}
			}else{
				response.sendRedirect("index.jsp");
			}
		}else{
			response.sendRedirect("login.jsp");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession sesion=request.getSession();
		String user=(String)sesion.getAttribute("user");
		String pass=(String)sesion.getAttribute("pass");
		Usuario u=new Usuario(user, pass);
		String r=AccionesUsuario.reemplazar(this.getClass().getSimpleName());
		if(AccionesUsuario.validarUsuario(u)){
			if(AccionesUsuario.validarPermiso(u, r)){
			String submit=request.getParameter("submit");
			if(submit.equals("Aceptar")){
				String nombre=request.getParameter("nombreProveedor");
				String direccion=request.getParameter("direccion");
				String razonSocial=request.getParameter("razonSocial");
				String telFijo=request.getParameter("telFijo");
				String celular=request.getParameter("celular");
				String cuit=request.getParameter("cuit");
				String iva=request.getParameter("iva");
				String CBU1=request.getParameter("CBU1");
				String nroCuenta1=request.getParameter("cuenta1");
				String banco1=request.getParameter("banco1");
				String sucursal1=request.getParameter("sucursal1");
				int idCb1=0;
				int idCb2=0;
				if(CBU1.equals("") && nroCuenta1.equals("") && banco1.equals("") && sucursal1.equals("") ){
					idCb1=0;
					sesion.setAttribute("CBU1Proveedor", "");
					sesion.setAttribute("banco1Proveedor", "");
					sesion.setAttribute("nroCuenta1Proveedor", "");
					sesion.setAttribute("sucursal1Proveedor", "");
				}else{
					CuentaBancaria cb1=new CuentaBancaria(CBU1, banco1, nroCuenta1, sucursal1);
					sesion.setAttribute("CBU1Proveedor", CBU1);
					sesion.setAttribute("banco1Proveedor", banco1);
					sesion.setAttribute("nroCuenta1Proveedor", nroCuenta1);
					sesion.setAttribute("sucursal1Proveedor", sucursal1);
					AccionesCuentaBancaria.addCuentaBancaria(cb1);
					idCb1=AccionesCuentaBancaria.getIdCuentaBancaria(cb1);
				}
				String CBU2=request.getParameter("CBU2");
				String nroCuenta2=request.getParameter("cuenta2");
				String banco2=request.getParameter("banco2");
				String sucursal2=request.getParameter("sucursal2");
				if(CBU2.equals("") && nroCuenta2.equals("") && banco2.equals("") && sucursal2.equals("") ){
					idCb2=0;
					sesion.setAttribute("CBU2Proveedor", "");
					sesion.setAttribute("banco2Proveedor", "");
					sesion.setAttribute("nroCuenta2Proveedor", "");
					sesion.setAttribute("sucursal2Proveedor", "");
				}else{
					CuentaBancaria cb2=new CuentaBancaria(CBU2, banco2, nroCuenta2, sucursal2);
					sesion.setAttribute("CBU2Proveedor", CBU2);
					sesion.setAttribute("banco2Proveedor", banco2);
					sesion.setAttribute("nroCuenta2Proveedor", nroCuenta2);
					sesion.setAttribute("sucursal2Proveedor", sucursal2);
					AccionesCuentaBancaria.addCuentaBancaria(cb2);
					idCb2=AccionesCuentaBancaria.getIdCuentaBancaria(cb2);
				}
				Proveedor p=new Proveedor(0,nombre,razonSocial,cuit,iva,direccion,telFijo,celular,idCb1,idCb2);
				if(AccionesProveedor.existeProveedor(cuit)){
					sesion.setAttribute("errorProveedor", true);
					sesion.setAttribute("nombreProveedor", nombre);
					sesion.setAttribute("razonSocialProveedor", razonSocial);
					sesion.setAttribute("telFijoProveedor", telFijo);
					sesion.setAttribute("direccionProveedor", direccion);
					sesion.setAttribute("celularProveedor", celular);
					sesion.setAttribute("ivaProveedor", iva);
					response.sendRedirect("altaProveedor.jsp");
				}else{
					AccionesProveedor.AltaProveedor(p);
					sesion.setAttribute("errorProveedor", false);
					response.sendRedirect("altaProveedor.jsp");
				}
				
			}else if(submit.equals("Modificar")){
				int idProveedor=Integer.parseInt(request.getParameter("idProveedor"));
				String nombre=request.getParameter("nombre");
				String direccion=request.getParameter("direccion");
				String celular=request.getParameter("celular");
				String telFijo=request.getParameter("telFijo");
				String razon=request.getParameter("razonSocial");
				String iva=request.getParameter("iva");;
				String cuit=request.getParameter("cuit");
				String CBU1=request.getParameter("CBU1");
				String nroCuenta1=request.getParameter("cuenta1");
				String banco1=request.getParameter("banco1");
				String sucursal1=request.getParameter("sucursal1");
				int idCb1=0;
				int idCb2=0;
				if(CBU1.equals("") && nroCuenta1.equals("") && banco1.equals("") && sucursal1.equals("") ){
					idCb1=0;
				}else{
					CuentaBancaria cb1=new CuentaBancaria(CBU1, banco1, nroCuenta1, sucursal1);
					AccionesCuentaBancaria.addCuentaBancaria(cb1);
					idCb1=AccionesCuentaBancaria.getIdCuentaBancaria(cb1);
				}
				String CBU2=request.getParameter("CBU2");
				String nroCuenta2=request.getParameter("cuenta2");
				String banco2=request.getParameter("banco2");
				String sucursal2=request.getParameter("sucursal2");
				if(CBU2.equals("") && nroCuenta2.equals("") && banco2.equals("") && sucursal2.equals("") ){
					idCb2=0;
				}else{
					CuentaBancaria cb2=new CuentaBancaria(CBU2, banco2, nroCuenta2, sucursal2);
					AccionesCuentaBancaria.addCuentaBancaria(cb2);
					idCb2=AccionesCuentaBancaria.getIdCuentaBancaria(cb2);
				}
				
				Proveedor p=new Proveedor(idProveedor, nombre, razon, cuit, iva, direccion, telFijo, celular, idCb1,idCb2);
				AccionesProveedor.modificaProveedor(p);
				response.sendRedirect("proveedores.jsp");
			}
			}else{
				response.sendRedirect("index.jsp");
			}
		}else{
			response.sendRedirect("login.jsp");
		}
	}

}
